;
(function () {
    var wHeight = getViewPortSize().height, // 获取浏览器窗口的高度
        sHeight = getScrollSize().height, // 获取html页面的高度
        playing = false, //播放状态-默认不播放
        t = null; // 定时器

    var AutoReader = function (opt) {
        this.playBtn = opt.playBtn; //播放按钮
        this.sTopBtn = opt.sTopBtn; // 返回顶部
        this.playImg = opt.playImg; // 播放ico
        this.pauseImg = opt.pauseImg; //暂停ico
        // 判断配置项是否全部配置
        if (!this.playImg || !this.pauseImg || !this.playBtn || !this.sTopBtn) {
            console.log('对不起，4个配置项必须都要配置');
            return;
        }
        var _self = this;

        //浏览器的滚动条滚动事件 - this指向window
        addEvent(window, 'scroll', function () {
            _self.sTopBtnShow.call(_self); // 将this指向AutoReader
        });
        //点击返回顶部按钮-要将自动播放恢复成暂停状态
        addEvent(this.sTopBtn, 'click', function () {
            window.scrollTo(0, 0); //将滚动条的x、y轴的滚动距离都设置为0
            clearInterval(t); //清空定时器
            _self.playBtn.style.backgroundImage = 'url(' + _self.playImg + ')'; //将播放ico改为暂停ico
            playing = false; //将播放状态改为false--暂停
        });

        //点击播放按钮
        addEvent(this.playBtn, 'click', function () {
            _self.setAutoPlay(); // this指向AutoReader
        });
    }

    AutoReader.prototype = {
        setAutoPlay: function () {
            var sTop = getScrollOffset().top, //获取滚动条的滚动距离
                _self = this;
            // 如果页面的高度 = 浏览器窗口的高度 + 滚动条滚动的距离 --> 滚动到页面的底部
            if (sHeight === wHeight + sTop) {
                return;
            }

            if (!playing) {
                // 播放--如果还没滚动到底部就10毫秒垂直滚动1px，如果到底部就清除定时器，恢复为暂停状态
                t = setInterval(function () {
                    // 已经滚动到底部
                    if (sHeight <= wHeight + sTop) {
                        clearInterval(t); // 清除定时器
                        _self.playBtn.style.backgroundImage = 'url(' + _self.playImg + ')'; //播放按钮的ico为播放ico
                        playing = false; // 自动播放内容状态为暂停
                        return;
                    } else {
                        window.scrollBy(0, 1); // 滚动条的y轴向下滚动1像素
                        _self.playBtn.style.backgroundImage = 'url(' + _self.pauseImg + ')'; //播放按钮的ico设置为暂停ico
                    }

                }, 10);
                playing = true;
            } else {
                // 暂停
                clearInterval(t);
                _self.playBtn.style.backgroundImage = 'url(' + _self.playImg + ')';
                playing = false;
            }
        },
        // 返回顶部按钮的显示状态
        sTopBtnShow: function () {
            var sTop = getScrollOffset().top, // 获取浏览器滚动条的滚动距离
                sTopBtn = this.sTopBtn;
            sTopBtn.style.display = sTop ? 'block' : 'none'; //如果滚动条的滚动状态不为0就显示返回顶部按钮
        }
    }

    window.AutoReader = AutoReader;
})()